import { AjaxResultTypeEnum } from '@/enums/ajaxResultTypeEnum';
import { EntityPropertyFlagEnum } from '@/enums/entityPropertyFlagEnum';

/** Ajax操作结果 */
export interface AjaxResult<T = any> {
  /** Ajax结果类型 */
  Type: AjaxResultTypeEnum;
  /** 消息内容 */
  Content: string;
  /** 返回数据 */
  Data: T;

  /** 是否成功 */
  Succeeded: boolean;
}

/** 二维码Dto */
export interface QRCodeDto {
  /** 二维码内容 */
  Content: QRCodeContentDto;

  /** 二维码图片的Base64格式 */
  Image: string;
  /** 是否已扫描 */
  IsScan: boolean;
}
/** 二维码内容Dto */
export interface QRCodeContentDto {
  /** 编号 */
  Id: string;
  /** 类型 */
  Type: string;

  /** 客户端类型 */
  ClientType: number;
  /** 客户端ID */
  ClientId: string;

  /** 附加数据 */
  Data: any;
}

/** 实体属性信息 */
export interface EntityProperty {
  /** 属性名 */
  Name: string;
  /** 属性显示 */
  Display: string;
  /** 属性数据类型 */
  TypeName: string;
  /**标记集合 */
  Flags: EntityPropertyFlagEnum[];
  /** 数据值范围集合（主要针对枚举类型） */
  ValueRange: any[];
}

/** 树形节点 */
export interface TreeNode {
  /** 编号 */
  Id: string;
  /** 名称 */
  Name: string;
  /** 是否选中 */
  IsChecked: boolean;
  /** 顺序编号 */
  OrderNo: number;
  /** 备注 */
  Remark: string;
  /** 图标样式 */
  IconCls: string;
  /** URL */
  Url: string;
  /** 附加数据 */
  Data: any;

  /** 是否有子项 */
  HasChildren: boolean;
  /** 子项集合 */
  Items: TreeNode[];
}
